iT邦幫忙

2021 iThome 鐵人賽

DAY 12
1
自我挑戰組

初見 Tailwindcss系列 第 12

Day 12 - 陰影、透明度使用

  • 分享至 

  • xImage
  •  

威爾豬剛開始學設計時,也曾被老師說你的陰影不行,多觀察生活周遭。What...? 當時真的不懂,只覺得我陰影沒問題啊,到底哪裡不好?帶著疑惑開始瘋狂閱讀和看大量作品,隨著時間推移,果然魔鬼藏在細節裡。其實陰影用得好,加分加不少;陰影用不好,扣分也扣不少。不過在螢幕的世界裡,相對來說並沒這麼嚴格,只要用對就足矣。但是 Tailwind 的陰影,並不只是單調的陰影,它已經幫我們下了不少功夫,那我們來看看 Tailwind 預設的陰影吧。

外陰影

Tailwind 預設陰影顏色為純黑色,透過 Alpha 值的調節及位置重疊來組成,分成基底色、外暈色、擴張色,模擬成更真實的陰影環境,隨著陰影的遠近也有所變化,預設已幫我們建立了 6 組遠近陰影,分別為:.shadow-sm.shadow.shadow-md.shadow-lg.shadow-xl.shadow-2xl,就看各位如何使用了。我們可以看下方陰影區別:

<div class="w-32 h-32 mx-2 bg-white shadow-none">shadow-none</div>
<div class="w-32 h-32 mx-2 bg-white shadow-sm">shadow-sm</div>
<div class="w-32 h-32 mx-2 bg-white shadow">shadow</div>
<div class="w-32 h-32 mx-2 bg-white shadow-md">shadow-md</div>
<div class="w-32 h-32 mx-2 bg-white shadow-lg">shadow-lg</div>
<div class="w-32 h-32 mx-2 bg-white shadow-xl">shadow-xl</div>
<div class="w-32 h-32 mx-2 bg-white shadow-2xl">shadow-2xl</div>

https://ithelp.ithome.com.tw/upload/images/20210912/20141250yu6eajcNtz.png

尺寸越大,物件離桌面的距離越遠。如果不想有陰影,就不要寫 (這不是廢話) 或使用 shadow-none

內陰影

在 CSS 就是在 shadow 裡加入 inset,Tailwind 使用方式為 shadow-inner,如果是想營造出有凹陷感,就可以使用這 class,不過可惜預設的內陰影就只有一種效果,而且範圍並不明顯,看下圖:

<div class="w-32 h-32 bg-yellow-100 shadow-inner">shadow-inner</div>

https://ithelp.ithome.com.tw/upload/images/20210912/20141250o6rZG3NlzF.png

還好 Tailwind 可以在 tailwind.config.js 進行修改,只要在 theme.boxShadow 重新配置就好,不過對陰影熟練度的門檻,還是比較高一點的。設定如下:

  // tailwind.config.js
  
  module.exports = {
    ...
    theme: {
     ...
      boxShadow: {
        sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
        DEFAULT: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',
        md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
        lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
        xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
        '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
        '3xl': '0 35px 60px -15px rgba(0, 0, 0, 0.3)',
        inner: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)',
        outline: '0 0 0 3px rgba(66, 153, 225, 0.5)',
        focus: '0 0 0 3px rgba(66, 153, 225, 0.5)',
        none: 'none',
      },
      ...
    },
    ...
  }

天真的威爾豬以為修改陰影顏色應該很簡單,只需修改一個參數就能通通搞定,沒想到必須一項一項修正,還是威爾豬沒找正確的方法,如果有同學知道更簡單的方法,也歡迎分享,希望之後的 Tailwind 新版可以為此做修正。

不透明度

不透明度和調整 RGB 顏色的 Alpha 值很類似,只不過它範圍更廣,從顏色、圖片、文字、背景等通通能調整,Tailwind 也幾乎把大家會設定的值都預設了,使用方式為:opacity-{amount}。預設如下:

class opacity
opacity-0 0
opacity-5 0.05
opacity-10 0.1
opacity-20 0.2
opacity-25 0.25
opacity-30 0.3
opacity-40 0.4
opacity-50 0.5
opacity-60 0.6
opacity-70 0.7
opacity-75 0.75
opacity-80 0.8
opacity-90 0.9
opacity-95 0.95
opacity-100 1
<div class="w-32 h-32 bg-yellow-300 opacity-100">100%</div>
<div class="w-32 h-32 bg-yellow-300 opacity-75">75%</div>
<div class="w-32 h-32 bg-yellow-300 opacity-50">50%</div>
<div class="w-32 h-32 bg-yellow-300 opacity-25">25%</div>

https://ithelp.ithome.com.tw/upload/images/20210912/20141250JdSqmsqGe9.png

這邊記住 opacity 會影響這區塊的透明度,不會只影響單一個項目而已。

今天內容對有基礎的同學來說相對簡單,應該很好吸收,只是要修改陰影稍嫌麻煩一點,那威爾豬就先談到這邊,咱們明天見。


上一篇
Day 11 - 邊框使用方式
下一篇
Day 13 - Flex 排版
系列文
初見 Tailwindcss30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言